<?xml version="1.0" encoding="UTF-8" ?>

<xsd:schema xmlns="http://symfony.com/schema/dic/assetic"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://symfony.com/schema/dic/assetic"
    elementFormDefault="qualified">

    <xsd:element name="config" type="config" />

    <xsd:complexType name="config">
        <xsd:sequence>
            <xsd:element name="bundle" type="bundle" minOccurs="0" maxOccurs="unbounded" />
            <xsd:element name="filter" type="filter" minOccurs="0" maxOccurs="unbounded" />
            <xsd:element name="workers" type="workers" minOccurs="0" maxOccurs="1" />
            <xsd:element name="twig" type="twig" minOccurs="0" maxOccurs="unbounded" />
            <xsd:element name="asset" type="asset" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="debug" type="xsd:string" />
        <xsd:attribute name="use-controller" type="xsd:string" />
        <xsd:attribute name="read-from" type="xsd:string" />
        <xsd:attribute name="write-to" type="xsd:string" />
        <xsd:attribute name="dump-on-warmup" type="xsd:string" />
        <xsd:attribute name="java" type="xsd:string" />
        <xsd:attribute name="node" type="xsd:string" />
        <xsd:attribute name="sass" type="xsd:string" />
    </xsd:complexType>

    <xsd:complexType name="bundle">
        <xsd:attribute name="name" type="xsd:string" use="required" />
    </xsd:complexType>

    <xsd:complexType name="asset">
        <xsd:sequence>
            <xsd:element name="input" type="xsd:string" minOccurs="1" maxOccurs="unbounded" />
            <xsd:element name="filter" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <xsd:attribute name="output" type="xsd:string" />
        <xsd:attribute name="debug" type="xsd:string" />
        <xsd:anyAttribute namespace="##any" processContents="lax" />
    </xsd:complexType>

    <xsd:complexType name="filter">
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <xsd:attribute name="resource" type="xsd:string" />
        <xsd:anyAttribute namespace="##any" processContents="lax" />
    </xsd:complexType>

    <xsd:complexType name="workers">
        <xsd:all>
            <xsd:element name="cache-busting" type="worker_cache_busting" minOccurs="0" maxOccurs="1" />
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="worker_cache_busting">
        <xsd:attribute name="enabled" type="xsd:boolean" />
    </xsd:complexType>

    <xsd:complexType name="twig">
        <xsd:sequence>
            <xsd:element name="function" type="twig_function" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="twig_function">
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <xsd:anyAttribute namespace="##any" processContents="lax" />
    </xsd:complexType>
</xsd:schema>
